package cn.t.repository.device;

import cn.t.core.repoistory.impl.IRepository;
import cn.t.model.device.DeviceDO;
import cn.t.request.InventoryReq;
import cn.t.vo.device.InventoryCargowayVO;
import cn.t.vo.device.InventoryDeviceVO;
import cn.t.vo.device.InventorySkuVO;

import java.util.Collection;
import java.util.List;

/**
 * 设备表(Device)领域仓库
 *
 * @author t
 * @since 2024-05-24 10:19:11
 */
public interface DeviceRepository extends IRepository<DeviceDO> {

    List<DeviceDO> queryById(Collection<Long> deviceIdSet);
    List<DeviceDO>  getDeviceList(DeviceDO deviceDO,List<Long> ids);

    boolean updateBatch(List<DeviceDO> deviceDOS);

    void updateVersion(DeviceDO deviceDO);

    List<DeviceDO> getDevicesByFirmId(Long firmId);

    List<InventoryDeviceVO> findInventoryDevicePage(Integer pageNo, Integer pageSize, InventoryReq param);

    Long getInventoryDeviceCount(InventoryReq param);

    List<InventorySkuVO> findInventorySkuPage(Integer pageNo, Integer pageSize, InventoryReq param);

    Long getInventorySkuCount(InventoryReq param);

    List<InventoryCargowayVO> findCargowayPage(Integer pageNo, Integer pageSize, InventoryReq param);

    Long getInventoryCargowayCount(InventoryReq param);
}
